웹 서비스
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
웹 서비스는 네트워크를 통해 서로 다른 소프트웨어 시스템 간의 상호 작용을 가능하게 하는 기술로, W3C는 이를 "네트워크를 통해 상호 운용 가능한 기계 간 상호 작용을 지원하도록 설계된 소프트웨어 시스템"으로 정의한다. 초기에는 XML, SOAP, WSDL, UDDI 등의 기술을 사용한 1세대 웹 서비스가 주를 이루었으나, 이후 보안, 안정성을 강화한 2세대 웹 서비스 기술과 RESTful API의 등장으로 발전했다. 웹 서비스는 B2B, 매시업, 공공 부문 등 다양한 분야에서 활용되며, 구글, 아마존, 야후! 등에서 API를 제공한다. 하지만 복잡성과 성능 문제에 대한 비판도 존재하며, Apache Axis와 Apache Axis2와 같은 구현 프레임워크가 사용된다.
더 읽어볼만한 페이지
웹 서비스 | |
---|---|
일반 정보 | |
웹 서비스 구조 | |
레이어 | 서비스 전송 XML 메시징 서비스 설명 서비스 검색 |
프로토콜 | |
서비스 전송 | HTTP HTTPS SMTP XMPP |
XML 메시징 | SOAP XML-RPC REST |
서비스 설명 | WSDL WADL gRPC |
서비스 검색 | UDDI ebXML |
특징 | |
상호 운용성 | 다양한 시스템과 언어 간 호환 |
표준 프로토콜 사용 | HTTP, SOAP, XML 등 표준 프로토콜 기반 |
느슨한 결합 | 서비스 제공자와 사용자 간 의존성 감소 |
재사용성 | 다양한 애플리케이션에서 기능 재사용 가능 |
기타 | |
관련 기술 | API (응용 프로그램 프로그래밍 인터페이스) SOA (서비스 지향 아키텍처) |
2. 역사
1998년에 이종 플랫폼 간 정보 교환 수단으로 XML이 등장했고, 이후 XML을 기반으로 분산 컴퓨팅의 한 축을 담당하는 신기술로 웹 서비스가 등장하였다. 2001년경에는 큰 기대와 함께 업계 미디어에도 다수 소개되면서 인지도가 높아졌다. 그러나 시장에서는 그 필요성이 낮았던 탓인지 크게 보급되지 못했다. 관련 기술의 표준화 난항도 보급을 막는 요인으로 지적된다.[1] 실제로 실용화된 시스템도 있지만, 일반 사용자가 사용할 수 있는 것으로는 지도 정보나 일기 예보와 같이 종래부터 무료로 얻을 수 있는 정보가 웹 서비스로 제공되는 것밖에 존재하지 않아, 현 상황에서는 실험적인 사용에 머무는 시스템이 많다.
그러나 최근 서비스 지향 아키텍처(SOA)가 주목받으면서, 그 기반 기술인 웹 서비스에 대한 관심도 다시 높아지고 있다.
웹 서비스는 SOAP를 전제로 전 세계적으로 다수 구축될 예정이었지만, SOAP 규격이 복잡하고, 유행했던 시기에는 웹 애플리케이션이 소규모여서 이용 가치가 낮았던 점이 문제점으로 지적되어 실험적인 이용에만 머물렀다. 2010년대에 들어서 웹 애플리케이션이 고도화되면서, HTTP 사양 범위 내에서 API를 실현하는 REST와 그 서비스 간 연계가 활용되기 시작했다. 따라서 웹 서비스는 처음보다 훨씬 단순한 형태로 실현되었다고 할 수 있다. REST가 보급된 후에도 기업 간 협약에 의해 업무 시스템의 전자 상거래(EDI) 등의 용도로 사용되는 경우가 있지만(BtoB 시스템에서는 독자적인 API 등에서도 XML이 이용되어 온 경위가 있기 때문), 이러한 웹 서비스는 계약 관계에 있는 특정 기업에만 공개되어 있다.
웹 서비스를 응용하여, 복수의 웹 서비스끼리 연결하여 애플리케이션이나 서비스를 구축하는 것을 매시업이라고 부른다. 웹 서비스를 이용한 매시업의 구체적인 사례로는, 어떤 검색 결과에 기초하여 레스토랑 정보와 지도 정보를 동시에 표시하거나, YouTube 등 동영상 콘텐츠와 같은 키워드의 상품을 amazon.com 등에서 가져와서 표시하는 등 사용법에 따라 사용자에게 높은 이점을 제공하는 경우도 있다. 이러한 서비스는 대기업뿐만 아니라 개인의 참여가 많아 날마다 다양한 서비스가 생겨나고 있다. 그러나 유용한 웹 서비스 자체가 적기 때문에, 매시업은 극히 제한된 분야의 부가 서비스적인 위치에 머무르고 있다.
2. 1. 초기 발전 (1998년 ~ 2000년대 초)
1998년에 이종 플랫폼 간 정보 교환 수단으로 XML이 등장한 후, XML을 기반으로 분산 컴퓨팅의 한 축을 담당하는 신기술로 웹 서비스가 등장하였다.[1] 2001년경에는 큰 기대와 함께 업계 미디어에도 다수 소개되면서 인지도가 높아졌다.[1] 그러나 시장에서는 그 필요성이 낮았던 탓인지 크게 보급되지 못했고, 관련 기술의 표준화 난항도 보급을 막는 요인으로 지적된다.[1]웹 서비스는 SOAP를 전제로 전 세계적으로 다수 구축될 예정이었지만, SOAP의 규격이 복잡하고, 유행했던 시기에는 웹 애플리케이션이 소규모여서 이용 가치가 낮았던 점이 문제점으로 지적되어, 실험적인 이용에만 머물렀다.[1]
2. 2. 기술 표준화의 난항과 보급의 어려움 (2000년대 초 ~ 2010년대)
1998년에 이종 플랫폼 간 정보 교환 수단으로 XML이 등장한 후, XML을 기반으로 분산 컴퓨팅의 한 축을 담당하는 신기술로 등장하였다. 2001년경에는 큰 기대와 함께 업계 미디어에도 다수 소개되면서 인지도가 높아졌다. 그러나 시장에서는 그 필요성이 낮았던 탓인지 크게 보급되지는 못했다. 관련 기술의 표준화 난항도 보급을 막는 요인으로 지적된다. 실제로 실용화된 시스템도 있지만, 일반 사용자가 사용할 수 있는 것으로는 지도 정보나 일기 예보와 같이 종래부터 무료로 얻을 수 있는 정보가 웹 서비스로 제공되는 것밖에 존재하지 않으며, 현 상황에서는 실험적인 사용에 머무는 시스템이 많다.웹 서비스는 SOAP를 전제로 전 세계적으로 다수 구축될 예정이었지만, SOAP의 규격이 복잡하다는 점과, 유행했던 시기에는 웹 애플리케이션이 소규모여서 이용 가치가 낮았던 점이 문제점으로 지적되어 실험적인 이용에만 머물렀다.
2. 3. SOA의 등장과 RESTful API의 확산 (2010년대 이후)
1998년 이종 플랫폼 간 정보 교환 수단으로 XML이 등장한 후, XML을 기반으로 하는 분산 컴퓨팅 기술인 웹 서비스가 2001년경부터 업계의 주목을 받았다. 그러나 시장 수요 부족과 기술 표준화의 어려움으로 널리 보급되지는 못했다.최근 서비스 지향 아키텍처(SOA)가 주목받으면서, 그 기반 기술인 웹 서비스에 대한 관심도 다시 높아졌다.
당초 웹 서비스는 SOAP를 기반으로 구축될 예정이었으나, SOAP 규격의 복잡성과 당시 웹 애플리케이션의 규모가 작아 활용 가치가 낮다는 문제점이 있었다. 2010년대에 들어 웹 애플리케이션이 고도화되면서, HTTP 사양 범위 내에서 API를 구현하는 RESTful API 방식과 서비스 간 연계가 활용되기 시작했다. 이는 웹 서비스가 처음보다 훨씬 단순한 형태로 실현되었음을 의미한다. REST가 보급된 후에도 기업 간 전자 상거래(BtoB) 시스템 등에서는 여전히 XML 기반의 독자적인 API가 사용되기도 하지만, 이러한 웹 서비스는 계약 관계에 있는 특정 기업에만 공개된다.
웹 서비스를 응용하여 여러 웹 서비스를 연결해 새로운 애플리케이션이나 서비스를 구축하는 것을 매시업이라고 한다. 매시업의 예로는 검색 결과에 따라 식당 정보와 지도 정보를 함께 보여주거나, 동영상 콘텐츠와 관련된 상품을 가져와 표시하는 것 등이 있다.
3. 주요 기술 및 표준
웹 서비스 구현에는 다양한 기술과 표준이 사용된다.
주요 기술:
- Asynchronous JavaScript and XML (AJAX): 비동기식 통신을 통해 웹 페이지를 다시 로드하지 않고도 서버와 데이터를 주고받을 수 있게 해주는 기술이다. 초기에는 XML을 주로 사용했지만, 최근에는 JSON 형식을 더 많이 사용한다.
- JSON-RPC: JSON 기반의 원격 프로시저 호출(RPC) 프로토콜이다.
- JSON-WSP: JSON 기반의 웹 서비스 프로토콜이다.
- SOAP: 초기 웹 서비스의 주요 프로토콜 중 하나였으나, REST에 비해 복잡하여 현재는 잘 쓰이지 않는다.
- 웹 서비스 대화 언어 (WSCL)
- 웹 서비스 기술 언어 (WSDL): W3C에서 개발.
- 웹 서비스 흐름 언어 (WSFL): BPEL로 대체됨.
- 웹 템플릿
- WS-MetadataExchange
- XML 인터페이스 (XINS): POX 스타일 웹 서비스 명세 형식을 제공.
- UDDI
- XML-RPC
- WDDX
- WS-Security
- WS-I
W3C의 웹 서비스 정의W3C는 웹 서비스를 "네트워크를 통해 상호 운용 가능한 기계 간 상호 작용을 지원하도록 설계된 소프트웨어 시스템"으로 정의한다.[3] 이는 기계가 처리할 수 있는 형식(특히 WSDL)으로 설명된 인터페이스를 갖는다. 다른 시스템은 일반적으로 XML 직렬화와 다른 웹 관련 표준과 함께 HTTP를 사용하여 SOAP 메시지를 통해 해당 설명에 규정된 방식으로 웹 서비스와 상호 작용한다.[3]
웹 서비스의 발전1998년 XML이 이종 플랫폼 간 정보 교환 수단으로 등장한 후, 분산 컴퓨팅의 한 축을 담당하는 신기술로 각광받았다. 2001년경에는 큰 기대와 함께 업계에 널리 알려졌으나, 시장의 필요성 부족과 기술 표준화의 어려움으로 인해 널리 보급되지는 못했다.
초기에는 SOAP 기반의 웹 서비스가 주류를 이루었으나, 규격의 복잡성과 당시 웹 애플리케이션의 소규모성으로 인해 활용도가 낮았다. 2010년대에 들어서 웹 애플리케이션이 고도화되면서, HTTP 사양 내에서 API를 구현하는 REST 방식과 서비스 간 연계가 활발하게 사용되기 시작했다.
REST와 웹 APIREST는 인터넷 규모에서 작동할 수 있는 잘 구성된 웹 서비스의 아키텍처이다. 웹 API는 REST 기반 통신으로 단순화되면서 웹 서비스에서 발전한 기술이다.[2] RESTful API는 인터페이스를 지원하기 위해 XML 기반 웹 서비스 프로토콜 (SOAP 및 WSDL)을 필요로 하지 않는다.
3. 1. 1세대 웹 서비스 기술
W3C는 웹 서비스에 대해 "네트워크를 통해 상호 운용 가능한 기계 간 상호 작용을 지원하도록 설계된 소프트웨어 시스템"으로 정의했다.[3] 이는 기계가 처리할 수 있는 형식(특히 WSDL)으로 설명된 인터페이스를 갖는다. 다른 시스템은 일반적으로 XML 직렬화와 다른 웹 관련 표준과 함께 HTTP를 사용하여 SOAP 메시지를 통해 해당 설명에 규정된 방식으로 웹 서비스와 상호 작용한다.[3]"웹 서비스"라는 용어는 XML, SOAP, WSDL, UDDI 개방형 표준을 사용하여 인터넷 프로토콜 백본을 통해 웹 기반 애플리케이션을 통합하는 표준화된 방법을 설명한다. XML은 데이터를 포함하고 데이터 주변의 메타데이터를 제공하는 데 사용되는 데이터 형식이며, SOAP는 데이터를 전송하는 데 사용되고, WSDL은 사용 가능한 서비스를 설명하는 데 사용되며, UDDI는 어떤 서비스를 사용할 수 있는지 나열한다.
웹 서비스는 네트워크를 통해 두 개의 전자 장치 간의 통신 방법이다. 이는 유틸리티 컴퓨팅의 개념처럼 '항상 켜져' 있는 서비스로 웹을 통해 네트워크 주소에서 제공되는 소프트웨어 기능이다.
많은 조직에서 관리를 위해 여러 소프트웨어 시스템을 사용하며, 서로 다른 소프트웨어 시스템은 종종 서로 데이터를 교환해야 한다. 웹 서비스는 이러한 두 소프트웨어 시스템이 인터넷을 통해 데이터를 교환할 수 있도록 하는 통신 방법이다. 데이터를 요청하는 소프트웨어 시스템을 '서비스 요청자'라고 하며, 요청을 처리하고 데이터를 제공하는 소프트웨어 시스템을 '서비스 제공자'라고 한다.
1998년 XML이 이종 플랫폼 간 정보 교환 수단으로 등장한 후, XML을 기반으로 분산 컴퓨팅의 한 축을 담당하는 신기술로 등장하였다. 2001년경에는 큰 기대와 함께 업계 미디어에도 다수 소개되면서 인지도가 높아졌다. 그러나 시장에서는 그 필요성이 낮았던 탓인지 크게 보급되지는 못했다. 관련 기술의 표준화 난항도 보급을 막는 요인으로 지적된다.
3. 1. 1. SOAP (Simple Object Access Protocol)
SOAP(Simple Object Access Protocol)는 분산 환경에서 정보를 교환하기 위한 XML 기반의 프로토콜이다.[3] XML은 데이터를 포함하고 데이터 주변의 메타데이터를 제공하는 데 사용되는 데이터 형식이며, SOAP는 이 데이터를 전송하는 데 사용된다.[3]W3C는 웹 서비스에 대해 "네트워크를 통해 상호 운용 가능한 기계 간 상호 작용을 지원하도록 설계된 소프트웨어 시스템"으로 정의했다.[3] 다른 시스템은 일반적으로 XML 직렬화와 다른 웹 관련 표준과 함께 HTTP를 사용하여 SOAP 메시지를 통해 해당 설명에 의해 규정된 방식으로 웹 서비스와 상호 작용한다.[3]
웹 서비스는 XML, SOAP, WSDL, UDDI 개방형 표준을 사용하여 인터넷 프로토콜을 통해 웹 기반 애플리케이션을 통합하는 표준화된 방법을 설명한다.
SOAP는 1998년 이종 플랫폼 간 정보 교환 수단으로 XML이 등장한 후, XML을 기반으로 분산 컴퓨팅의 한 축을 담당하는 신기술로 등장하였다. 2001년경에는 큰 기대와 함께 업계 미디어에도 다수 소개되면서 인지도가 높아졌다. 그러나 시장에서는 그 필요성이 낮았던 탓인지 크게 보급되지는 못했다. 관련 기술의 표준화 난항도 보급을 막는 요인으로 지적된다.
웹 서비스는 SOAP를 전제로 전 세계적으로 다수 구축될 예정이었지만, SOAP의 규격이 복잡하다는 점과, 유행했던 시기에는 웹 애플리케이션이 소규모여서 이용 가치가 낮았던 점이 문제점으로 지적되어 실험적인 이용에만 머물렀다.
3. 1. 2. WSDL (Web Services Description Language)
W3C는 웹 서비스에 대해 "웹 서비스는 네트워크를 통해 상호 운용 가능한 기계 간 상호 작용을 지원하도록 설계된 소프트웨어 시스템입니다. 이는 기계가 처리할 수 있는 형식(특히 WSDL)으로 설명된 인터페이스를 갖습니다."라고 정의했다.[3]WSDL(웹 서비스 기술 언어)은 웹 서비스의 인터페이스를 기술하는 XML 기반의 언어이다. WSDL 파일은 `.wsdl` 확장자를 가지며, 웹 서비스가 제공하는 기능, 데이터 형식, 통신 프로토콜 등 웹 서비스와 상호 작용하는 데 필요한 모든 정보를 정의한다.[3]
WSDL 파일에는 다음과 같은 정보들이 정의되어 있다.
- 한 시스템이 다른 시스템에서 데이터를 요청하는 방법
- 데이터 요청에 필요한 특정 매개변수
- 생성된 데이터의 구조 (일반적으로 XML 파일로 교환되며, XML 파일의 구조는 .xsd 파일에 대해 유효성이 검사됨)
- 통신에 대한 특정 규칙이 준수되지 않을 때 표시할 오류 메시지 (문제 해결을 쉽게 하기 위함)
1998년, 이종 플랫폼 간 정보 교환 수단으로 XML이 등장한 후, XML을 기반으로 분산 컴퓨팅의 한 축을 담당하는 신기술로 등장하였다. 2001년경에는 큰 기대와 함께 업계 미디어에도 다수 소개되면서 인지도가 높아졌다.
3. 1. 3. UDDI (Universal Description, Discovery, and Integration)
UDDI는 웹 서비스 제공자와 사용자를 연결해주는 디렉토리 서비스로, 어떤 유형의 데이터에 대해 어떤 소프트웨어 시스템에 연락해야 하는지를 정의한다.소프트웨어 시스템은 특정 보고서나 데이터가 필요할 때 UDDI를 통해 해당 데이터를 수신하기 위해 연락할 수 있는 다른 시스템을 찾을 수 있다. UDDI는 서비스 디렉토리 역할을 하며 웹 서비스를 검색하는 수단으로 사용될 예정이었다.
웹 서비스 아키텍처에서 서비스 요청자는 UDDI에 연락하여 필요한 데이터의 제공자를 찾는다.[3]
하지만 2005년부터 2008년 사이에 마이크로소프트, SAP, IBM 등 많은 공급업체들이 자사의 UDDI 솔루션 또는 저장소를 중단했다.[14][15] 2008년 중국 베이징에서 열린 WWW2008 컨퍼런스에서 발표된 주요 연구[16]에 따르면, 당시 사용 가능한 SOAP 기반 웹 서비스의 63%만이 실제로 활성화되어 있거나 호출될 수 있었다. 또한 이 연구에서는 UDDI와 같은 서비스 레지스트리의 설계 복잡성 때문에 검색 엔진이 웹 서비스를 검색하는 데 이상적인 소스가 되고 있다는 사실을 발견했다.[17]
3. 2. 2세대 웹 서비스 기술
2세대 웹 서비스 기술은 보안, 신뢰성, 트랜잭션 처리 등 확장된 기능을 제공한다.- 보안 관련 기술: WS-Security 프레임워크, XACML, XrML, XKMS, SAML 등
- 안정성 관련 기술: WS-ReliableMessaging, WS-Coordination, WS-Transaction, BPEL4WS 등
보안 및 안정성 관련 기술은 하위 섹션에서 더 자세히 다룬다.
3. 2. 1. 보안 관련 기술
- WS-Security 프레임워크
- XACML
- XrML
- XKMS
- SAML
- .NET Passport
- XML-Encryption
- SSL
- XML-Signature
- WS-Trust
- WS-Privacy
- WS-SecureConversation
- WS-Federation
- WS-Authorization
3. 2. 2. 안정성 관련 기술
웹 서비스의 안정성과 관련된 기술은 다음과 같다.- '''WS-ReliableMessaging''': 메시지 전달의 신뢰성을 보장하는 프로토콜이다.
- '''WS-Coordination''': 분산된 여러 서비스 간의 작업을 조율하는 프로토콜이다.
- '''WS-Transaction''': 분산 트랜잭션을 관리하는 프로토콜이다.
- '''BPEL4WS''' (Business Process Execution Language for Web Services): 웹 서비스의 비즈니스 프로세스를 정의하는 언어이다.
- '''WS-Addressing''': 메시지의 주소를 지정하고 라우팅하는 방법을 정의하는 프로토콜이다.
- '''WS-Policy''': 웹 서비스의 정책(보안, QoS 등)을 설명하는 프레임워크이다.
- '''WS-PolicyAssertions''': WS-Policy에서 사용되는 정책의 구체적인 요구사항을 정의한다.
- '''WS-PolicyAttachments''': WS-Policy를 웹 서비스의 다른 요소(엔드포인트, 메시지 등)에 연결하는 방법을 정의한다.
- '''WS-Attachments''': SOAP 메시지에 첨부 파일을 추가하는 방법을 정의한다.
- '''SOAP with Attachments''': 첨부 파일이 있는 SOAP 메시지의 표준이다.
- '''UDDI''' (Universal Description, Discovery, and Integration): 웹 서비스를 등록하고 검색하기 위한 디렉토리 서비스이다.
- '''WSDL''' (Web Services Description Language): 웹 서비스의 인터페이스를 기술하는 언어이다.
- '''SOAP''' (Simple Object Access Protocol): XML 기반의 메시지를 교환하는 프로토콜이다.
- '''XML-RPC''' (XML Remote Procedure Call): XML을 사용하여 원격 프로시저 호출을 수행하는 프로토콜이다.
- '''WDDX''' (Web Distributed Data Exchange): 웹 애플리케이션 간에 데이터를 교환하는 형식이다.
- '''WS-Security''': 웹 서비스의 보안(인증, 암호화, 무결성)을 위한 프로토콜이다.
- '''WS-I''' (Web Services Interoperability Organization): 웹 서비스의 상호 운용성을 증진하기 위한 산업 컨소시엄이다.
3. 3. REST (Representational State Transfer)
REST(Representational State Transfer)는 인터넷 규모에서 작동할 수 있는 잘 구성된 웹 서비스의 아키텍처이다. 2004년 W3C는 REST를 웹 서비스의 주요 특징으로 다음과 같이 정의했다.[1]1998년 XML이 이종 플랫폼 간 정보 교환 수단으로 등장한 후, 분산 컴퓨팅의 한 축을 담당하는 신기술로 2001년경 업계 미디어에 다수 소개되며 인지도가 높아졌다. 그러나 시장의 필요성이 낮아 크게 보급되지 못했고, 관련 기술 표준화의 난항도 보급을 막는 요인으로 지적된다.
웹 서비스는 SOAP를 전제로 전 세계적으로 구축될 예정이었으나, SOAP 규격의 복잡성과 당시 웹 애플리케이션의 소규모성으로 인해 실험적인 이용에 그쳤다. 2010년대 웹 애플리케이션이 고도화되면서 HTTP 사양 범위 내에서 API를 실현하는 REST와 그 서비스 간 연계가 활용되기 시작했다.
3. 3. 1. RESTful API
웹 API는 REST 기반 통신으로 단순화되면서 웹 서비스에서 발전한 기술이다.[2] RESTful API는 인터페이스를 지원하기 위해 XML 기반 웹 서비스 프로토콜 (SOAP 및 WSDL)을 필요로 하지 않는다.3. 4. 기타 관련 기술
JSON-RPC, JSON-WSP, REST 대 RPC, SOAP, WSCL, W3C에서 개발한 WSDL, BPEL로 대체된 WSFL, 웹 템플릿, WS-MetadataExchange, POX 스타일 웹 서비스 명세 형식을 제공하는 XINS, UDDI, XML-RPC, WDDX, WS-Security, WS-I 등이 웹 서비스 관련 기술이다.웹 API는 REST 기반 통신으로 단순화되면서 웹 서비스에서 발전한 기술이다.[2] RESTful API는 인터페이스를 지원하기 위해 XML 기반 웹 서비스 프로토콜 (SOAP 및 WSDL)을 필요로 하지 않는다.
4. 웹 서비스 아키텍처
W3C는 웹 서비스를 "네트워크를 통해 상호 운용 가능한 기계 간 상호 작용을 지원하도록 설계된 소프트웨어 시스템"으로 정의한다.[3] 이는 기계가 처리할 수 있는 형식(특히 WSDL)으로 설명된 인터페이스를 갖는다. 다른 시스템은 XML 직렬화와 다른 웹 관련 표준과 함께 HTTP를 사용하여 SOAP 메시지를 통해 해당 설명에 의해 규정된 방식으로 웹 서비스와 상호 작용한다.[3]
W3C 웹 서비스는 HTTP 프로토콜을 통한 SOAP를 사용하여 EDI/B2B와 같은 독점 솔루션을 사용하는 것보다 인터넷을 통해 더 저렴하고 효율적인 상호 작용을 가능하게 한다. HTTP를 통한 SOAP 외에도 웹 서비스는 FTP와 같은 다른 전송 메커니즘에서도 구현할 수 있다. 2002년 웹 서비스 아키텍처 워킹 그룹은 "웹 서비스"의 표준화된 구현을 요구하는 웹 서비스 아키텍처를 정의했다.
웹 서비스는 XML, SOAP, WSDL 및 UDDI 개방형 표준을 사용하여 인터넷 프로토콜 백본을 통해 웹 기반 애플리케이션을 통합하는 표준화된 방법이다. XML은 데이터를 표현하고, SOAP는 데이터를 전송하며, WSDL은 사용 가능한 서비스를 설명하고, UDDI는 어떤 서비스를 사용할 수 있는지 나열한다.
웹 서비스는 네트워크를 통해 두 개의 전자 장치 간의 통신 방법이며, 유틸리티 컴퓨팅 개념처럼 ''항상 켜져'' 있는 서비스로 웹을 통해 네트워크 주소에서 제공되는 소프트웨어 기능이다.
조직에서는 관리를 위해 여러 소프트웨어 시스템을 사용하며, 이들은 종종 서로 데이터를 교환해야 한다. 웹 서비스는 서로 다른 프로그래밍 언어를 사용하는 소프트웨어 시스템들이 인터넷을 통해 데이터를 교환할 수 있도록 데이터 교환에 XML 파일을 사용한다.
서로 다른 시스템과의 통신 규칙은 다음과 같다.
- 한 시스템이 다른 시스템에서 데이터를 요청하는 방법.
- 데이터 요청에 필요한 특정 매개변수.
- 생성된 데이터의 구조 (XML 파일로 교환되며, XML 파일의 구조는 .xsd 파일에 대해 유효성이 검사된다.)
- 통신 규칙이 준수되지 않을 때 표시할 오류 메시지 (문제 해결을 용이하게 함).
이러한 통신 규칙은 ` .wsdl` 확장자를 가진 WSDL 파일에 정의된다.
'''자율 웹 서비스''' ('''AWS''')는 엄격한 규칙에 의존하지 않는 보다 유연한 웹 서비스를 개발하려고 한다.[4]
4. 1. 서비스 제공자 (Service Provider)
웹 서비스 제공자는 네트워크를 통해 상호 운용 가능한 기계 간 상호 작용을 지원하도록 설계된 소프트웨어 시스템이다. 이는 기계가 처리할 수 있는 형식(특히 WSDL)으로 설명된 인터페이스를 갖는다.[3] 다른 시스템은 XML 직렬화와 다른 웹 관련 표준과 함께 HTTP를 사용하여 SOAP 메시지를 통해 해당 설명에 의해 규정된 방식으로 웹 서비스와 상호 작용한다.[3]웹 서비스는 ''항상 켜져'' 있는 서비스로 웹을 통해 네트워크 주소에서 제공되는 소프트웨어 기능이다.
많은 조직에서 관리를 위해 여러 소프트웨어 시스템을 사용하며, 이들은 종종 서로 데이터를 교환해야 한다. 웹 서비스는 두 소프트웨어 시스템이 인터넷을 통해 이러한 데이터를 교환할 수 있도록 하는 통신 방법이다. 데이터를 요청하는 소프트웨어 시스템을 ''서비스 요청자''라고 하며, 요청을 처리하고 데이터를 제공하는 소프트웨어 시스템을 ''서비스 제공자''라고 한다.
서로 다른 소프트웨어는 서로 다른 프로그래밍 언어를 사용할 수 있으므로, 특정 프로그래밍 언어에 의존하지 않는 데이터 교환 방법이 필요하다. 대부분의 소프트웨어는 XML 태그를 해석할 수 있으므로, 웹 서비스는 데이터 교환에 XML 파일을 사용한다.
UDDI는 어떤 유형의 데이터에 대해 어떤 소프트웨어 시스템에 연락해야 하는지 정의하는 디렉터리이다. 소프트웨어 시스템은 특정 데이터가 필요할 때 UDDI를 통해 해당 데이터를 수신하기 위해 연락할 수 있는 다른 시스템을 찾는다. 이후 SOAP 프로토콜을 사용하여 해당 시스템에 연락한다. 서비스 제공자 시스템은 먼저 WSDL 파일을 참조하여 데이터 요청의 유효성을 검사한 다음 요청을 처리하고 SOAP 프로토콜에 따라 데이터를 보낸다.
4. 2. 서비스 요청자 (Service Requestor)
웹 서비스에서 데이터를 요청하는 소프트웨어 시스템을 '서비스 요청자'라고 부른다.[3] 서비스 요청자는 UDDI를 통해 필요한 서비스를 제공하는 서비스 제공자를 찾고, SOAP 프로토콜을 사용하여 서비스 제공자에게 데이터를 요청한다. 서비스 제공자는 요청을 검증하고, XML 형식의 데이터를 SOAP 프로토콜을 통해 서비스 요청자에게 보낸다.4. 3. 서비스 레지스트리 (Service Registry)
서비스 레지스트리는 웹 서비스 제공자와 사용자를 연결해주는 역할을 한다. UDDI는 어떤 소프트웨어 시스템에 어떤 유형의 데이터에 대해 연락해야 하는지를 정의하는 대표적인 예이다.소프트웨어 시스템이 특정 보고서나 데이터가 필요할 때, UDDI를 통해 해당 데이터를 제공할 수 있는 다른 시스템을 찾을 수 있다. 필요한 시스템을 찾으면 SOAP 프로토콜을 사용하여 해당 시스템에 데이터 요청을 보낸다. 서비스 제공자 시스템은 WSDL 파일을 참조하여 데이터 요청의 유효성을 검사한 후 요청을 처리하고 SOAP 프로토콜을 통해 데이터를 전송한다.[3]
5. 웹 서비스의 활용
웹 서비스는 서비스 지향 아키텍처 (SOA)의 기반 기술로서 다시 주목받고 있다. 초기에는 SOAP 기반으로 널리 구축될 예정이었으나, 규격의 복잡성과 당시 웹 애플리케이션의 규모가 작아 활용 가치가 낮다는 문제점이 있었다.
2010년대 이후 웹 애플리케이션이 고도화되면서, HTTP 범위 내에서 API를 구현하는 REST 방식과 서비스 간 연계가 활용되기 시작했다. REST 방식은 기업 간 협약을 통해 업무 시스템의 전자 상거래(EDI) 등에 사용되기도 하지만, 이러한 웹 서비스는 계약 관계에 있는 특정 기업에만 공개된다.
5. 1. 매시업 (Mashup)
웹 서비스는 SOAP를 전제로 전 세계적으로 다수 구축될 예정이었지만, SOAP의 규격이 복잡하다는 점과, 유행했던 시기에는 웹 애플리케이션이 소규모여서 이용 가치가 낮았던 점이 문제점으로 지적되어, 실험적인 이용에만 머물렀다. 2010년대에 들어서 웹 애플리케이션이 고도화되면서, HTTP 사양 범위 내에서 API를 실현하는 REST와 그 서비스 간 연계가 활용되기 시작했다. 따라서 웹 서비스는 처음보다 훨씬 단순한 형태로 실현되었다고 할 수 있다.웹 서비스를 응용하여, 복수의 웹 서비스끼리 연결하여 애플리케이션이나 서비스를 구축하는 것을 매시업이라고 부른다. 웹 서비스를 이용한 매시업의 구체적인 사례로는, 어떤 검색 결과에 기초하여 레스토랑 정보와 지도 정보를 동시에 표시하거나, YouTube 등 동영상 콘텐츠와 같은 키워드의 상품을 amazon.com 등에서 가져와서 표시하는 등 사용법에 따라 사용자에게 높은 이점을 제공하는 경우도 있다. 이러한 서비스는 대기업뿐만 아니라 개인의 참여가 많아 날마다 다양한 서비스가 생겨나고 있다. 그러나 유용한 웹 서비스 자체가 적기 때문에, 매시업은 극히 제한된 분야의 부가 서비스적인 위치에 지나지 않는 상황이다.
6. 비판 및 한계
웹 서비스는 1998년 XML이 이종 플랫폼 간 정보 교환 수단으로 등장한 이후, 분산 컴퓨팅의 한 축을 담당하는 신기술로 기대를 모으며 2001년경 업계에 널리 알려졌다.[9] 그러나 시장의 낮은 필요성과 관련 기술 표준화의 어려움으로 인해 널리 보급되지 못했다.[9] 실제로 활용된 시스템은 지도 정보나 일기 예보와 같이 무료로 제공되는 정보에 국한되었으며, 대부분 실험적인 수준에 머물렀다.
최근 서비스 지향 아키텍처(SOA)가 주목받으면서 웹 서비스에 대한 관심이 다시 높아지고 있다. 그러나 SOAP 규격의 복잡성과 당시 웹 애플리케이션의 소규모 특성으로 인해 활용 가치가 낮다는 문제점이 지적되었다.
2010년대에 들어 웹 애플리케이션이 고도화되면서, HTTP 사양 범위 내에서 API를 구현하는 REST와 그 서비스 간 연계가 활용되기 시작했다. 이는 웹 서비스가 초기보다 훨씬 단순한 형태로 실현되었음을 의미한다. REST 보급 후에도 기업 간 협약에 따라 업무 시스템의 전자 상거래(EDI) 등에 웹 서비스가 사용되기도 하지만, 이러한 웹 서비스는 계약 관계에 있는 특정 기업에만 공개된다.
웹 서비스를 응용하여 여러 웹 서비스를 연결해 애플리케이션이나 서비스를 구축하는 것을 매시업이라고 한다. 웹 서비스 이용 매시업의 구체적인 사례로는, 검색 결과에 기초하여 레스토랑 정보와 지도 정보를 동시에 표시하거나, YouTube 등 동영상 콘텐츠와 같은 키워드의 상품을 amazon.com 등에서 가져와서 표시하는 등 사용법에 따라 사용자에게 높은 이점을 제공하는 경우가 있다. 이러한 서비스는 대기업뿐만 아니라 개인의 참여가 많아 날마다 다양한 서비스가 생겨나고 있다. 그러나 유용한 웹 서비스 자체가 적기 때문에, 매시업은 극히 제한된 분야의 부가 서비스적인 위치에 머무르고 있다.
6. 1. 복잡성
비 RESTful 웹 서비스에 대한 비판자들은 종종 그것들이 너무 복잡하고[8], 전형적인 오픈 소스 구현보다는 대규모 소프트웨어 벤더 또는 통합업체에 기반하고 있다고 불평한다. 웹 서비스는 메시지 형식으로 XML을 사용하고, 캡슐화 및 전송에 SOAP/HTTP를 사용하기 때문에 성능에 대한 우려도 있다.[9]1998년에 이종 플랫폼 간 정보 교환 수단으로 XML이 등장한 후, XML을 기반으로 분산 컴퓨팅의 한 축을 담당하는 신기술로 등장하여, 2001년경에는 큰 기대와 함께 업계 미디어에도 다수 소개되면서 인지도가 높아졌다. 그러나 시장에서는 그 필요성이 낮았던 탓인지 크게 보급되지는 못했다. 관련 기술의 표준화 난항도 보급을 막는 요인으로 지적된다.
웹 서비스는 SOAP를 전제로 전 세계적으로 다수 구축될 예정이었지만, SOAP의 규격이 복잡하다는 점과, 유행했던 시기에는 웹 애플리케이션이 소규모여서 이용 가치가 낮았던 점이 문제점으로 지적되어, 실험적인 이용에만 머물렀다.
6. 2. 성능
웹 서비스는 메시지 형식으로 XML을 사용하고 캡슐화 및 전송에 SOAP/HTTP를 사용하기 때문에 성능에 대한 우려가 있다.[9] 1998년 이종 플랫폼 간 정보 교환 수단으로 XML이 등장한 후, XML을 기반으로 분산 컴퓨팅의 한 축을 담당하는 신기술로 등장하여, 2001년경에는 큰 기대와 함께 업계 미디어에도 다수 소개되면서 인지도가 높아졌다. 그러나 시장에서는 그 필요성이 낮았던 탓인지 크게 보급되지는 못했다.7. 구현 프레임워크
- 아파치 Axis
- 아파치 Axis2
참조
[1]
웹사이트
Web Services Architecture § Relationship to the World Wide Web and REST Architectures
https://www.w3.org/T[...]
2017-11-11
[2]
논문
Services Mashups: The New Generation of Web Applications
https://works.bepres[...]
[3]
웹사이트
Web Services Glossary § Web service
https://www.w3.org/T[...]
World Wide Web Consortium
2017-01-24
[4]
서적
Towards Sustainable Society on Ubiquitous Networks: The 8th IFIP Conference on E-Business, E-Services, and E-Society (I3E 2008), September 24 – 26, 2008, Tokyo, Japan
https://books.google[...]
Springer Science & Business Media
2015-08-19
[5]
웹사이트
Creating bottom-up Web services
http://help.eclipse.[...]
2017-11-11
[6]
웹사이트
Creating top-down Web services
http://help.eclipse.[...]
2017-11-11
[7]
간행물
Subset WSDL to Access Subset Service for Analysis
[8]
웹사이트
WS-Pagecount
http://www.tbray.org[...]
TBray.org
2011-04-22
[9]
논문
Performance of Java Middleware – Java RMI, JAX-RPC, and CORBA
http://ro.uow.edu.au[...]
[10]
간행물
A tool-supported approach to perform efficient regression testing of Web services
[11]
웹사이트
Oracle Application Testing Suite
http://www.oracle.co[...]
[12]
웹사이트
Web Services Testing using Oracle Application Testing Suite
http://www.testingto[...]
[13]
간행물
Automated Web Service Change Management AWSCM - A Tool
[14]
웹사이트
Microsoft, IBM, SAP discontinue UDDI registry effort
https://www.infoworl[...]
2022-05-28
[15]
웹사이트
Removal of UDDI Services from Server Operating System – Win32 apps
https://docs.microso[...]
2022-05-28
[16]
웹사이트
WWW2008 – WWW 2008: 17th International World Wide Web Conference (Welcome)
https://archive.thew[...]
2022-05-28
[17]
서적
Proceedings of the 17th international conference on World Wide Web
Association for Computing Machinery
2008-04-21
[18]
웹사이트
第1回:Web APIの紹介
http://thinkit.co.jp[...]
2014-02-23
[19]
웹사이트
Webサービス図鑑
http://bizmakoto.jp/[...]
ITmedia
[20]
웹사이트
知っておきたいWebサービス
https://web.archive.[...]
マイナビニュース
관련 사건 타임라인
( 최근 20개의 뉴스만 표기 됩니다. )
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com